package jsyf.oa.service.system;

import com.alibaba.dubbo.common.utils.StringUtils;
import com.alibaba.fastjson.JSON;
import com.alibaba.fastjson.JSONObject;
import jsyf.com.constant.Const;
import jsyf.com.util.BaseUtils;
import jsyf.com.util.FastJsonConvert;
import jsyf.oa.dao.system.GroupDao;
import jsyf.oa.entity.system.CompanyEntity;
import jsyf.oa.entity.system.GroupEntity;
import jsyf.oa.facade.system.GroupFacade;
import org.springframework.beans.factory.annotation.Autowired;
import org.springframework.stereotype.Service;
import org.springframework.transaction.annotation.Transactional;


/**
 * Created by Administrator on 2017/12/30 0030.
 */
@Service
@Transactional(rollbackFor = Exception.class)
@com.alibaba.dubbo.config.annotation.Service(protocol = {"dubbo"})
public class GroupService implements GroupFacade {
    @Autowired
    private GroupDao groupDao;

    @Override
    public String save(String jsonData) {
        GroupEntity entity = JSON.toJavaObject(JSON.parseObject(jsonData), GroupEntity.class);
        Integer rows;
        if ("0".equals(entity.getId()) || StringUtils.isBlank(entity.getId())) {
            rows = groupDao.add(entity);
        } else {
            GroupEntity groupEntity = (GroupEntity) groupDao.getIBaseEntityById(entity.getId());
            groupEntity.setGroupName(entity.getGroupName());
            groupEntity.setParentId(entity.getParentId());
            groupEntity.setSortNo(entity.getSortNo());
            rows = groupDao.update(groupEntity);
        }
        return rows == 0 ? "" : entity.getId();
    }

    @Override
    public String removeById(String jsonData) {
        JSONObject jsonParams = FastJsonConvert.convertJSONToObject(jsonData, JSONObject.class);
        String id = jsonParams.getString("id");
        int flag = this.groupDao.removeById(id);
        if (Const.INT_ONE == flag) {
            return BaseUtils.succsessObjRespond("删除成功");
        }
        return BaseUtils.errorrRespond("删除失败");
    }

    @Override
    public Boolean sort(String groupIds) {
        return groupDao.sort(groupIds);
    }


}
